In Rust, il matching dei modelli non è solo un ramo del flusso di controllo—è la vera architettura dell'associazione. Ogni volta che dichiari una variabile o definisci una funzione, stai effettuando un matching di modelli.
1. L'identità dell'associazione
Quando scriviamo let x = 5;, non stiamo solo assegnando un valore. Stiamo confrontando il valore 5 con il modello irrefutabilex. Poiché x è un nome che può rappresentare qualsiasi valore, il confronto ha sempre successo e crea un legame locale.
2. Parametri con modelli (Lista 18-6)
Forse la scoperta più profonda è che le firme delle funzioni sono modelli. Nella firma fn foo(x: i32), il codice si aspetta un i32 e utilizza il modello x per associare l'argomento in ingresso. Ciò significa che ogni entrata in una funzione è essenzialmente un evento di confronto con un solo braccio.
3. Universalità dei modelli
I modelli vanno oltre match. Appaiono in for cicli (destrutturazione di tuple), while let condizioni e persino if let espressioni. Questo Associazione locale principio garantisce che il codice Rust sia sempre espressivo, sia che tu stia estratte dati da una struttura o iterare su una mappa hash.